package com.example.labtest.controller;

import com.example.labtest.domain.Student;
import com.example.labtest.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;

//!!救命，又是注解，我真是佛，为什么我不直接去搜404错误啊，一直在哪里检查mapping！注解都没加，🐷下次遇到这种不出现的问题，首先检查大注解，再去检查小的
@Controller
public class StudentController {

    /**
     * 自动注入一个studentService，表现层来调用业务逻辑层Service
     */
    @Autowired
    StudentService studentService;


    /**
     * Model：是由SpringBoot MVC提供的，其中的内容是键值对的形式，可以存放我们的内容
     */
    @RequestMapping("/student/list")
    public String list(HttpServletRequest httprequest,Model model) {

        HttpSession session=httprequest.getSession();
        if(session.getAttribute("userid")==null){
            //没有登陆，则使用redirect重定向到登录界面去登录
            return "redirect:/login/user";
        }

        /**
         * findall()方法读取students列表里面的所有内容
         */
        List<Student> students = studentService.findAll();
        /**
         * 在model里面添加属性（键值对）
         */
        model.addAttribute("data", students);
        return "/student/list";
    }

    @ResponseBody
   @RequestMapping("/webapi/student/findByName")
    public String findByName(String name, Model model)
   {
        if(name == null){
           name = "";
       }
        List<Student> students = studentService.findByName(name);
       model.addAttribute("data",students);
        return "student/list";
   }
    }

